package core.hmxchen.log.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.util.List;

/**
 * @program: log-print
 * @description:
 * @author: hmxchen
 * @create: 2021-09-03 14:10
 **/
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@Data
public class MethodInfo {
    /**
     * 代表本地方法，不进行代码定位
     */
    public static final int NATIVE_LINE_NUMBER = -1;

    /**
     * 所在类全类名
     */
    private String classAllName;
    /**
     * 所在类简单类名
     */
    private String classSimpleName;
    /**
     * 方法名称
     */
    private String methodName;
    /**
     * 参数列表
     */
    private List<String> paramNames;
    /**
     * 方法行号
     */
    private Integer lineNumber;

    public boolean isNative() {
        return lineNumber == NATIVE_LINE_NUMBER;
    }
}
